1. Technical Field
The present invention relates generally to color management in a computer. More specifically, the invention relates to a technique for dynamically adjusting image colors in a client-server environment to assure accurate color reproduction of an image or graphic in a web page as the page is served from a web server to a client.
2. Description of the Related Art
The World Wide Web is the Internet""s multimedia information retrieval system. In the web environment, client machines effect transactions to web servers using the Hypertext Transfer Protocol (HTTP), which is a known application protocol providing users access to files (e.g., text, graphics, images, sound, video, etc.) using a standard page description language known as Hypertext Markup Language (HTML). HTML provides basic document formatting and allows the developer to specify xe2x80x9clinksxe2x80x9d to other servers and files. In the Internet paradigm, a network path to a server is identified by a so-called Uniform Resource Locator (URL) having a special syntax for defining a network connection. Use of an HTML-compatible browser (e.g., Netscape Navigator or Microsoft Internet Explorer) at a client machine involves specification of a link via the URL. In response, the client makes a request to the server identified in the link and, in return, receives in return a document or other object formatted according to HTML. A collection of documents supported on a web server is sometimes referred to as a web site.
Many web pages include images or graphics that are designed to have specific color or greyscale characteristics, e.g., hue, saturation, luminance, opacity, translucency, image tone, or the like, when displayed on a client machine. The exact reproduction of color on a computer system, however, is a function of many factors, such as the viewer""s monitor, graphics hardware, viewing conditions, the ambient lighting, and the like. This creates a problem where the end user perceives colors differently than the designer or provider of the image intended. For example, consider a web site that sells clothing online by displaying colored images of available products. A user might decide to purchase a given product, such as a shirt, from the web site based on how he or she perceives the color of the fabric as displayed on the web page. If the user""s computer system does not accurately reproduce the color intended by the designer, e.g., by representing the actual color as too dark or too light, the user may end up purchasing something that he or she did not intend.
There have been several attempts to address this problem in the prior art. In one approach, an image is processed on the server ahead of time, i.e. not dynamically, based on stored calibration settings that are tied to specific combinations of hardware and software. This approach, however, only approximates the necessary calibration settings that are required, and it further requires preprocessing for every conceivable device/software configuration. Moreover, the technique requires front end preprocessing of the image, which consumes server resources. Another known approach involves use of a plug-in or a specialized graphic viewer on the client machine to adjust image colors of served content. This technique only implements a platform-specific solution that requires additional costly and complex levels of pre- and post-processing color adjust operations.
It would be highly desirable to provide a solution that does not require specific software modifications or specialized graphics support. The present invention solves this problem.
It is a general object of the present invention to assure that a hosted image is reproduced as intended on a wide variety of machines and hardware/software configurations.
This and other objects are achieved by abstracting the process of image correction to the server in a client-server environment and generating color corrections to an image as that image is being served. Preferably, the image is modified xe2x80x9con-the-flyxe2x80x9d for a specific client machine according to calibration parameters for that machine (or the user of the machine) that are generated during a one-time calibration at the client. Preferably, this calibration is effected using a software routine, e.g., a Java applet, that is downloaded to the client and executed, e.g., in a client browser. A user of the client machine runs the applet to establish a set of calibration parameters that are then stored at the server, e.g., as a user profile. When a request is later made for a given web page hosted by the server, the server identifies the user making the request and applies, the calibration parameters to color adjust the image as the page including that image is served. In this way, each user of a client machine may provide calibration data to the server, which then serves different color-adjusted versions of the image to the respective client machines as a function of that data. Thus, for example, one particular user might receive a version of the image that has been color-adjusted to alter a given hue. Yet another user might receive a version of the image that has been color-adjusted to alter a given saturation. A third user might receive still another version of the image that has been color-adjusted for luminance. Thus, the particular version of the image served to a particular user of a client machine will be dependent on the data collected as a result of the user executing the calibration applet.
According to the invention, each user defines a set of calibration parameters by running through a series of simple tests that measure perceived or actual differences in color reproduction on the user""s particular machine configuration. These settings are then sent to the server, where they are saved in a user profile. Once a client is configured, the individual settings are applied to a dynamic image preprocessor that runs on the server to correct image tone, saturation, brightness, or the like as a function of the unique calibration parameters to assure that the image is reproduced accurately on the user""s particular computer system.
In accordance with another feature of the invention, a method for serving color adjusted web pages to a plurality of web clients begins by sending a calibration applet to respective client machines. A web server then receives inputs from the calibration applet from the respective client machines. A given user profile for each user is then stored at the server. The profile includes information identifying the user, together with the calibration data derived from local execution of the calibration applet by the user. Later, in response to a request for a web page from a given client machine, the server identifies the user and adjusts a default web page according to his or her user profile to produce an adjusted web page. The adjusted web page includes at least one image or graphic that has been adjusted according to the calibration parameters input as a result of the user executing the calibration applet on the user""s machine. The server then serves the adjusted web page to the requesting client. This page is then rendered on the client machine using local resources (e.g., a web browser).
The foregoing has outlined some of the more pertinent objects and features of the present invention. These objects should be construed to be merely illustrative of some of the more prominent features and applications of the invention. Many other beneficial results can be attained by applying the disclosed invention in a different manner or modifying the invention as will be described. Accordingly, other objects and a fuller understanding of the invention may be had by referring to the following Detailed Description of the Preferred Embodiment.